package com.hmdp.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import javax.crypto.SecretKey;
import java.util.Date;
import java.util.Map;

public class JWTUtils {
    /**
     * 生成jwt
     * 使用HS256算法，私匙使用固定密钥
     *
     * @param secretKey jwt的密钥
     * @param expMillis jwt的过期时间
     * @param claims 用户信息的载体
     * @return
     */
    public static String createJWT(SecretKey secretKey, Map<String, Object> claims) {
//        long expMillis = System.currentTimeMillis() + ttlMillis;
//        Date expireTime = new Date(expMillis);
        return Jwts.builder()
//                .expiration(expireTime)
                .claims(claims)
                .signWith(secretKey, Jwts.SIG.HS256)
                .compact();
    }

    public static Claims parseJWT(SecretKey secretKey, String token) {
        return Jwts.parser()
                .verifyWith(secretKey)
                .build()
                .parseSignedClaims(token)
                .getPayload();
    }
}
